// 测试翻译功能的脚本
console.log('🧪 开始测试翻译功能...\n');

// 模拟翻译函数（从 aiimg.js 复制）
function translateAnalysisText(text) {
  if (!text || typeof text !== 'string') return text;
  
  // 常见的英文分析结果翻译映射
  const analysisTranslations = {
    // 黄金比例相关
    'perfect golden ratio': '完美黄金比例',
    'excellent golden ratio': '极佳黄金比例',
    'good golden ratio': '良好黄金比例',
    'moderate golden ratio': '中等黄金比例',
    'basic coordination': '基本协调',
    'needs improvement': '需要改善',
    'deviation': '偏差',
    'balanced': '平衡',
    'unbalanced': '不平衡',
    'symmetric': '对称',
    'asymmetric': '不对称',
    
    // 脸型相关
    'oval': '椭圆形',
    'round': '圆形',
    'square': '方形',
    'long': '长形',
    'heart': '心形',
    
    // 比例分析相关
    'ideal ratio': '理想比例',
    'actual ratio': '实际比例',
    'close to ideal': '接近理想',
    'far from ideal': '偏离理想',
    'perfect proportion': '完美比例',
    'good proportion': '良好比例',
    'poor proportion': '比例不佳',
    
    // 特征描述相关
    'well coordinated': '协调良好',
    'poorly coordinated': '协调性差',
    'harmonious': '和谐',
    'inharmonious': '不和谐',
    'proportional': '比例协调',
    'disproportional': '比例失调',
    
    // 评分相关
    'excellent': '优秀',
    'very good': '很好',
    'good': '良好',
    'fair': '一般',
    'poor': '较差',
    'perfect': '完美',
    'outstanding': '出色',
    
    // 建议相关
    'recommend': '建议',
    'suggestion': '建议',
    'improvement': '改善',
    'enhancement': '提升',
    'optimization': '优化'
  };
  
  let translatedText = text;
  
  // 执行翻译替换
  for (const [english, chinese] of Object.entries(analysisTranslations)) {
    const regex = new RegExp(english, 'gi');
    translatedText = translatedText.replace(regex, chinese);
  }
  
  // 检查是否还有英文字母（简单检测）
  const hasEnglish = /[a-zA-Z]/.test(translatedText);
  if (hasEnglish && translatedText !== text) {
    console.log(`🔄 分析文本翻译: "${text}" → "${translatedText}"`);
  } else if (hasEnglish) {
    console.log(`⚠️ 检测到未翻译的英文内容: "${text}"`);
  }
  
  return translatedText;
}

// 递归翻译对象中的所有文本内容
function translateObjectTexts(obj) {
  if (typeof obj === 'string') {
    return translateAnalysisText(obj);
  } else if (Array.isArray(obj)) {
    return obj.map(item => translateObjectTexts(item));
  } else if (obj && typeof obj === 'object') {
    const translatedObj = {};
    for (const [key, value] of Object.entries(obj)) {
      translatedObj[key] = translateObjectTexts(value);
    }
    return translatedObj;
  }
  return obj;
}

// 测试用例
const testCases = [
  // 单个字符串测试
  'perfect golden ratio',
  'excellent face proportion',
  'needs improvement in balance',
  'oval face shape',
  'good coordination between features',
  
  // 对象测试
  {
    analysis: 'excellent golden ratio',
    faceShape: 'oval',
    suggestions: [
      'perfect proportion detected',
      'good facial balance'
    ],
    details: {
      ratio: 'ideal ratio achieved',
      balance: 'well coordinated'
    }
  },
  
  // 数组测试
  [
    'perfect symmetry',
    'good balance',
    'excellent features'
  ],
  
  // 复杂嵌套对象测试
  {
    goldenRatio: {
      threeCourts: {
        analysis: 'excellent proportion',
        score: 95
      },
      noseMouthWidth: {
        analysis: 'perfect golden ratio',
        suggestion: 'no improvement needed'
      }
    },
    features: {
      faceShape: 'oval',
      symmetry: 'balanced',
      coordination: 'well coordinated'
    }
  }
];

console.log('📝 执行测试用例...\n');

testCases.forEach((testCase, index) => {
  console.log(`\n--- 测试用例 ${index + 1} ---`);
  console.log('原始内容:', JSON.stringify(testCase, null, 2));
  
  const translated = translateObjectTexts(testCase);
  console.log('翻译结果:', JSON.stringify(translated, null, 2));
  
  // 检查是否还有英文
  const hasEnglish = JSON.stringify(translated).match(/[a-zA-Z]/);
  if (hasEnglish && typeof testCase === 'object') {
    console.log('⚠️ 警告: 翻译后仍包含英文字母');
  } else if (!hasEnglish && typeof testCase === 'object') {
    console.log('✅ 成功: 已完全翻译为中文');
  }
});

console.log('\n🎉 翻译功能测试完成！');
console.log('\n💡 使用说明:');
console.log('1. 后端已添加完善的翻译机制');
console.log('2. 所有分析结果在返回前端前都会被翻译');
console.log('3. AI提示词已强化中文要求');
console.log('4. 支持递归翻译复杂嵌套对象');

